
namespace MinCultura.Sipa.AgentesArtes
{
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections;
    using Common;
    using SystemFrameworks;
    using Microsoft.ApplicationBlocks.Data;

    /// <summary>
    /// Clase de acceso a datos para la entidad ART_DISCAPACIDAD_FISICA
    /// </summary>

    public class DiscapacidadFisica
    {
        #region propiedades

        private string _cadenaConexion;

        public string ConnectionString
        {
            get { return _cadenaConexion; }
            set { _cadenaConexion = value; }
        }

        #endregion

        #region Private Data Access Atributes
        private const String DFI_ID_PARAM = "@DFI_ID";
        private const String DFI_DISCAPACIDAD_PARAM = "@DFI_DISCAPACIDAD";
        #endregion Private Data Access Atributes

        /// <summary>
        /// Constructor de la clase ARTDISCAPACIDADFISICA
        /// </summary>
        public DiscapacidadFisica(string strCadenaConecxion)
        {
            ConnectionString = strCadenaConecxion;
        }

        public MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData BuscarDiscapacidadFisica()
        {
            MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData response = new MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData();
            SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_BUSCAR_ART_DISCAPACIDAD_FISICA", response.Tables[0]);
            if (response.Tables[0].Rows.Count == 0)
                return null;
            return response;
        }


        public MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData ConsultarDiscapacidadFisica(decimal parDFI_ID)
        {
            MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData response = new MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData();

            SqlParameter param1 = new SqlParameter(DFI_ID_PARAM, parDFI_ID);

            SqlParameter[] parameters = { param1 };
            SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_CONSULTAR_ART_DISCAPACIDAD_FISICA", response.Tables[0], parameters);
            if (response.Tables[0].Rows.Count == 0)
                return null;
            return response;
        }

        public decimal AdicionarDiscapacidadFisica(MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData datos)
        {
            DataTable tabla = datos.Tables[MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData.ART_DISCAPACIDAD_FISICA_TABLE];
            decimal decDFI_ID = 0;

            try
            {
                foreach (DataRow row in tabla.Rows)
                {

                    SqlParameter param1 = new SqlParameter(DFI_ID_PARAM, SqlDbType.Decimal);
                    param1.Direction = ParameterDirection.Output;
                    SqlParameter param2 = new SqlParameter(DFI_DISCAPACIDAD_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData.DFI_DISCAPACIDAD_FIELD]);
                    SqlParameter[] parameters = { param1, param2 };
                    SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ADICIONAR_ART_DISCAPACIDAD_FISICA", parameters);
                    decDFI_ID = decimal.Parse(param1.Value.ToString());

                }

                return (decDFI_ID);

            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DISCAPACIDAD_FISICA"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_DISCAPACIDAD_FISICA"), ex);
            }
        }

        public void ActualizarDiscapacidadFisica(MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData datos)
        {
            DataTable tabla = datos.Tables[MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData.ART_DISCAPACIDAD_FISICA_TABLE];
            try
            {
                foreach (DataRow row in tabla.Rows)
                {

                    SqlParameter param1 = new SqlParameter(DFI_ID_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData.DFI_ID_FIELD]);
                    SqlParameter param2 = new SqlParameter(DFI_DISCAPACIDAD_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DiscapacidadFisicaData.DFI_DISCAPACIDAD_FIELD]);

                    SqlParameter[] parameters = { param1, param2 };
                    SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ACTUALIZAR_ART_DISCAPACIDAD_FISICA", parameters);
                }
            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DISCAPACIDAD_FISICA"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorActualizar", "ART_DISCAPACIDAD_FISICA"), ex);
            }
        }

        /// <summary>
        /// Elimina un registro de la entidad Artdiscapacidadfisica
        /// </summary>
        /// <param name="parDFI_ID">Identificador del registro
        public void EliminarDiscapacidadFisica(decimal parDFI_ID)
        {
            try
            {
                SqlParameter param1 = new SqlParameter(DFI_ID_PARAM, parDFI_ID);

                SqlParameter[] parameters = { param1 };
                SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_DISCAPACIDAD_FISICA", parameters);
            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DISCAPACIDAD_FISICA"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_DISCAPACIDAD_FISICA"), ex);
            }
        }

        public void EliminarDiscapacidadFisica(ArrayList arrIDs)
        {
            SqlConnection objConnection = new SqlConnection(ConnectionString);
            objConnection.Open();
            SqlTransaction objTrans = objConnection.BeginTransaction();

            try
            {
                foreach (object Item in arrIDs)
                {
                    SqlParameter param1 = new SqlParameter(DFI_ID_PARAM, decimal.Parse(Item.ToString()));
                    SqlParameter[] parameters = { param1 };
                    SqlHelper.ExecuteNonQuery(objTrans, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_DISCAPACIDAD_FISICA", parameters);
                }
                objTrans.Commit();
            }
            catch (SqlException sqlEx)
            {
                objTrans.Rollback();
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DISCAPACIDAD_FISICA"), sqlEx);
            }
            catch (Exception ex)
            {
                objTrans.Rollback();
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_DISCAPACIDAD_FISICA"), ex);
            }
            finally
            {
                objConnection.Close();
            }
        }
        /*
        public void CambiarEstado(string strIds, string strEstado)
        {
            try
            {	
                SqlParameter param1 = new SqlParameter(STR_ID_PARAM,strIds );
                SqlParameter param2 = new SqlParameter(DIS__ESTADO_PARAM,strEstado);
                SqlParameter[] parameters = {param1,param2};					
                SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_CAMBIAR_ESTADO_ART_DISCAPACIDAD_FISICA", parameters);
            }
            catch (SqlException sqlEx)
            {						 
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_DISCAPACIDAD_FISICA"),sqlEx); 
            }
            catch (Exception ex)
            {				 
                if (strEstado.Equals(ApplicationConfiguration.EstadoActivo))
                {
                    throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgAprobarRegistrosExitoso", "ART_DISCAPACIDAD_FISICA")); 
                }
                else
                {
                    throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgDesaprobarRegistrosExitoso", "ART_DISCAPACIDAD_FISICA")); 
                }
            }			
        }
        */

    }
}

